home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / GRAPHICS / POV_3 / SCENES / EXAMPLES / LEVEL3 / IONIC5 / IONIC5.POV < prev    next >
Encoding:
Text File  |  2004-07-23  |  15.7 KB  |  728 lines

  1. // Persistence Of Vision raytracer version 3.0 sample file.
  2. //   This data includes 1 Wall, 1 large 2nd floor column,
  3. //   & 2 smaller ionic colums.
  4.  
  5. //   b-snake.dat is the lower ctds twist that goes around the
  6. //   door openings.
  7. //   s-head3.dat is the head & top twist of creature
  8. //   turn.dat is ctds data that creates the ionic turned capitals.
  9. //   panther.dat is csg of panther figure.
  10.  
  11. //  Modified for use in stereo pair. Two of the GIF
  12. //  images have been replaced with single colors, and a third column
  13. //  was added to the bottom row.
  14. //
  15. //  Three cameras are included, the original, and two for stereo.
  16.  
  17. // gamma devised to approximate the illustration in Ray Tracing Creations II
  18.  
  19. #version 3.0
  20. global_settings { assumed_gamma 1.8 }
  21.  
  22. #include "colors.inc"
  23. #include "shapes.inc"
  24. #include "marble.inc"
  25. #include "b-snake.inc"
  26. #include "turn.inc"
  27. #include "panther.inc"
  28. #include "s-head3.inc"
  29.  
  30. #declare pink = color red 1.0 green 0.5 blue 0.5
  31.  
  32.  
  33. /* original camera */
  34. camera {
  35.    location <-50, 80, -220>
  36.    direction <0, 0, 1.5>
  37.    up <0, 1, 0>
  38.    right <4/3, 0, 0>
  39. }
  40.  
  41. // Optional stereo views:
  42. /* camera for left eye, render at 768 x 480 or similar aspect ratio */
  43. /*
  44. camera {
  45.     location <-61, 80, -220>
  46.     direction <0, 0, 1.4>
  47.     up <0, 1, 0>
  48.     right <1.6, 0, 0>
  49. }
  50. */
  51.  
  52. /* camera for right eye, render at 768 x 480 or similar aspect ratio */
  53. /*
  54. camera {
  55.     location <-39, 80, -220>
  56.     direction <0, 0, 1.4>
  57.     up <0, 1, 0>
  58.     right <1.6, 0, 0>
  59. }
  60. */
  61.  
  62. /*-------------- WORLD WALLS ---------------------------------*/
  63. sphere {
  64.    <0, 0, 0>, 50000
  65.    texture {
  66.       pigment { MidnightBlue }
  67.       finish {
  68.          ambient 1.0
  69.          diffuse 0.0
  70.       }
  71.    }
  72. }
  73.  
  74. /*---------------LIGHT #1------------------------------------*/
  75. light_source { <700, 150, -500> color White }
  76.  
  77. /*--------------LIGHT #2-------------------------------------*/
  78. light_source { <-4000, 100, -1000> color White }
  79.  
  80.  
  81. /**********************************************************************/
  82.  
  83. /*-----------BASE OF COLUMN A / TOP FLOOR-------------------*/
  84. #declare base_a = union {
  85.    sphere { <0, 0, 0>, 1 scale <13, 5.5, 13> }
  86.    sphere { <0, 0, 0>, 1 scale <11, 3, 11> translate 4*y  }
  87.    cylinder { <0,0,0>, y, 1 scale <10, 4, 10> translate 5*y }
  88.  
  89.    texture {
  90.       marble1
  91.       scale <9, 6, 4>
  92.       finish {
  93.          ambient 0.5
  94.          diffuse 1
  95.       }
  96.    }
  97.    texture {
  98.       marble4
  99.       scale <7, 12, 9>
  100.       rotate <0, 0, -40>
  101.       finish {
  102.          diffuse 1.0
  103.          phong 0.6
  104.          phong_size 50
  105.       }
  106.    }
  107.  
  108.    rotate 40*y
  109. }
  110.  
  111. /*-----------MOTIF TILE WORK--------------------*/
  112. #declare motif1 = cylinder {
  113.    <0,0,0>, y, 1
  114.    scale <9.5, 7, 9.5>
  115.  
  116.    texture {
  117.       pigment {
  118.          image_map { gif "congo4.gif" }
  119.          scale <19, 7, 1>
  120.          translate <-9.5, 0, -1>
  121.        }
  122.        finish {
  123.           ambient 0.3
  124.           diffuse 0.9
  125.           phong 0.6
  126.        }
  127.     }
  128.  }
  129.  
  130.  
  131. /*----------- COLUMN A -------------------------------------------------*/
  132. #declare column_a = cylinder {
  133.    <0,0,0>, y, 1
  134.    scale <9.3, 50, 9.3>
  135.  
  136.    texture {
  137.       marble1
  138.       finish {
  139.          crand 0.01
  140.          ambient 0.2
  141.          diffuse 0.8
  142.       }
  143.       scale <16, 4, 4>
  144.    }
  145.    texture {
  146.       marble2
  147.       scale <10, 6, 5>
  148.       rotate -30*z
  149.       finish { diffuse 1.0 }
  150.    }
  151.    texture {
  152.       marble4
  153.       finish {
  154.          phong 0.6
  155.          phong_size 45
  156.       }
  157.       scale <8, 15, 5>
  158.       rotate <0, 0, 50>
  159.    }
  160.  
  161.    rotate 10*y
  162. }
  163.  
  164.  
  165.  
  166. /*-----------COMBINE COLUMN & BASE --------------------------------*/
  167. #declare top_column = union {
  168.    object { base_a }
  169.    object { motif1 translate 9*y }
  170.    object { column_a translate 12*y }
  171. }
  172.  
  173.  
  174. /*--------------------TOP  FLOOR---------------------------------------*/
  175. #declare gfloor = object {
  176.    Cube
  177.    scale <100, 1, 50>
  178.  
  179.    texture {
  180.       pigment { Salmon }
  181.       finish {
  182.          ambient 0.2
  183.          diffuse 0.5
  184.          phong 1.0
  185.          phong_size 10
  186.       }
  187.    }
  188. }
  189.  
  190. /*----------- ROUND CORNER ----------------------------*/
  191. #declare sp1 = sphere { <0, 0, 0>, 2 }
  192.  
  193. #declare round_cap = object {
  194.    union {
  195.       object { sp1 translate <-100, 0, -50> }
  196.       object { sp1 translate <-100, 0,  50> }
  197.       object { sp1 translate <100, 0, -50> }
  198.       object { sp1 translate <100, 0,  50>  }
  199.       cylinder { <0,0,0>, x, 1 scale <200, 2, 2> translate <-100, 0, -50> }
  200.       cylinder { <0,0,0>, z, 1 scale <2, 2, 100> translate <-100, 0, -50> }
  201.    }
  202.  
  203.    texture {
  204.       marble1
  205.       scale <50, 10, 40>
  206.       finish {
  207.          ambient 0.4
  208.          diffuse 0.9
  209.       }
  210.    }
  211.    texture {
  212.       marble2
  213.       scale <40, 5, 20>
  214.       rotate <0, 0, 40>
  215.    }
  216.    texture {
  217.       marble4
  218.       scale <20, 20, 20>
  219.       rotate <0, 0, -40>
  220.       finish { phong 0.6 phong_size 20 }
  221.    }
  222. }
  223.  
  224. /*--------------- ONE DENTILE ----------------------------------*/
  225. #declare d1 = object { Cube scale <1, 1.5, 2> }
  226.  
  227. #declare cornice = union {
  228.    object { Cube scale <103, 0.5, 53> translate <0, 2.5, 0> }
  229.    object { Cube scale <103, 1, 53>   translate <0, -2, 0>  }
  230.    object { Cube scale <101, 2, 51>   translate <0, 0, 0>   }
  231.  
  232.    texture {
  233.       marble1
  234.       scale <10, 6, 4>
  235.       finish {
  236.          ambient 0.4
  237.          diffuse 1.0
  238.       }
  239.    }
  240.    texture {
  241.       marble2
  242.       scale <7, 6, 4>
  243.       rotate <0, 0, 40>
  244.    }
  245.    texture {
  246.       marble4
  247.       scale <3, 6, 5>
  248.       rotate <0, 0, -40>
  249.       finish {
  250.          phong 0.6
  251.          phong_size 20
  252.       }
  253.    }
  254. }
  255.  
  256. /*-------------------- ROW OF DENTILES ---------------*/
  257. #declare dentile_a = union {
  258.    object { d1 translate -50*x }
  259.    object { d1 translate -45*x }
  260.    object { d1 translate -40*x }
  261.    object { d1 translate -35*x }
  262.    object { d1 translate -30*x }
  263.    object { d1 translate -25*x }
  264.    object { d1 translate -20*x }
  265.    object { d1 translate -15*x }
  266.    object { d1 translate -10*x }
  267.    object { d1 translate  -5*x }
  268.    object { d1 translate   0*x }
  269.    object { d1 translate  50*x }
  270.    object { d1 translate  45*x }
  271.    object { d1 translate  40*x }
  272.    object { d1 translate  35*x }
  273.    object { d1 translate  30*x }
  274.    object { d1 translate  25*x }
  275.    object { d1 translate  20*x }
  276.    object { d1 translate  15*x }
  277.    object { d1 translate  10*x }
  278.    object { d1 translate   5*x }
  279.  
  280.    texture {
  281.       marble1
  282.       scale <10, 6, 4>
  283.       finish {
  284.          ambient 0.4
  285.          diffuse 0.9
  286.       }
  287.    }
  288.    texture {
  289.       marble2
  290.       scale <7, 6, 4>
  291.       rotate <0, 0, 40>
  292.    }
  293.    texture {
  294.       marble4
  295.       scale <3, 6, 4>
  296.       rotate <0, 0, -40>
  297.       finish {
  298.          phong 0.6
  299.          phong_size 20
  300.       }
  301.    }
  302. }
  303.  
  304. /*--------------  COMBINE CORNICE, FLOOR, CAP & DENTILES -----------*/
  305. #declare top_floor = union {
  306.    object { gfloor    translate <0, 9, 0>     }
  307.    object { round_cap translate <0, 7, 0>     }
  308.    object { cornice   translate <0, 3, 0>     }
  309.    object { dentile_a translate <-50, 4, -52> }
  310.    object { dentile_a translate < 50, 4, -52>  }
  311. }
  312.  
  313. /*------------------MAKE AN IONIC CAPIAL---------------------------*/
  314.  
  315. #declare turn = object { s1 rotate -90*x }
  316.  
  317. /*--------------- 1/2 SECTION OF CAP ------------------------------*/
  318. #declare cap_a = union {
  319.    sphere {
  320.       <0, 0, 0>, 1
  321.       scale <7, 2, 7>
  322.       translate <0, 1, 0>
  323.    }
  324.    cylinder {
  325.       <0,0,0>, y, 1
  326.       scale <6, 5, 6>
  327.       translate <0, 2, 0>
  328.    }
  329.    sphere {
  330.       <0, 0, 0>, 1
  331.       scale <8, 3, 8>
  332.       translate <0, 8, 0>
  333.    }
  334.    cylinder {
  335.       <0,0,0>, y, 1
  336.       scale <8, 2, 8>
  337.       translate <0, 8, 0>
  338.    }
  339.  
  340.    texture {
  341.       marble1
  342.       finish {
  343.          ambient 0.4
  344.          diffuse 1.0
  345.       }
  346.       scale <5, 13, 4>
  347.    }
  348.    texture {
  349.       marble4
  350.       finish {
  351.          diffuse 1.0
  352.          phong 0.6
  353.          phong_size 20
  354.       }
  355.       scale <5, 7, 3>
  356.       rotate <0, 0, 50>
  357.    }
  358. }
  359.  
  360.  
  361. /*-------------- THE OTHER 1/2-----------------------------*/
  362. #declare cap_b = union {
  363.    cylinder { <0,0,0>, y, 1 scale <1.2, 8, 1.2> translate <1, 0, -4>  }
  364.    cylinder { <0,0,0>, y, 1 scale <1.2, 8, 1.2> translate <-1, 0, -4> }
  365.  
  366.    cylinder { <0,0,0>, y, 1 scale <1.2, 4, 1.2> translate <-2, 0, -4> }
  367.    cylinder { <0,0,0>, y, 1 scale <1.2, 4, 1.2> translate <2, 0, -4>  }
  368.  
  369.    object { Cube scale <10, 2, 8> translate <0, 10, 2> }
  370.    object { Cube scale <7, 4, 4> translate <0, 4, 0>  }
  371.    cylinder { <0,0,0>, z, 1 scale <4.5, 4.5, 8> translate <-6, 4, -4> }
  372.    cylinder { <0,0,0>, z, 1 scale <4.5, 4.5, 8> translate <6, 4, -4>  }
  373.  
  374.    texture {
  375.       marble1
  376.       finish {
  377.          ambient 0.4
  378.          diffuse 1.0
  379.       }
  380.       scale <5, 13, 4>
  381.    }
  382.    texture {
  383.       marble4
  384.       finish {
  385.          diffuse 1.0
  386.          phong 0.6
  387.          phong_size 20
  388.       }
  389.       scale <5, 7, 3>
  390.       rotate 50*z
  391.    }
  392. }
  393.  
  394.  
  395. /*-----------2 HALFS & 2 TURNS MAKE A WHOLE ------------------------*/
  396. #declare capital = union {
  397.    object { cap_a translate <0, 0, 0> }
  398.    object { cap_b translate <0, 10, 0> }
  399.    object { turn translate <-6, 14, -4> }
  400.    object { turn rotate <0, 180, 0> translate <6, 14, -4> }
  401. }
  402.  
  403. /*--------------MAKE COLUMN-------------------*/
  404.  
  405.  
  406. /*-----------MOTIF TILE WORK--------------------*/
  407. #declare motif2 = cylinder {
  408.    <0,0,0>, y, 1
  409.    scale <6.5, 8, 6.5>
  410.  
  411.    texture {
  412.       pigment {
  413.          image_map { gif "congo4.gif" }
  414.          scale <13, 8, 1>
  415.          translate <-6.5, 0, -1>
  416.       }
  417.       finish {
  418.          ambient 0.3
  419.          diffuse 0.9
  420.          phong 1.0
  421.       }
  422.    }
  423. }
  424.  
  425. #declare column_b = cylinder {
  426.    <0,0,0>, y, 1
  427.    scale <6, 54, 6>
  428.  
  429.    texture {
  430.       marble1
  431.       finish {
  432.          ambient 0.4
  433.          diffuse 0.8
  434.          crand 0.1
  435.       }
  436.       scale <9, 30, 18>
  437.    }
  438.    texture {
  439.       marble2
  440.       scale <10, 18, 5>
  441.       rotate <0, 0, -30>
  442.       finish { diffuse 1.0 }
  443.    }
  444.    texture {
  445.       marble4
  446.       finish {
  447.          diffuse 0.9
  448.          phong 0.8
  449.          phong_size 45
  450.       }
  451.       scale <4, 15, 5>
  452.       rotate 50*z
  453.    }
  454. }
  455.  
  456.  
  457. /*-----------THE COMPLETE BOTTOM COLUMN---------------------------------*/
  458. #declare bottom_column = union {
  459.    object { capital  translate <0, 58, 0> }
  460.    object { motif2   translate <0, 50, 0>  }
  461.    object { column_b translate <0, 0, 0> }
  462. }
  463.  
  464. /*---------------------START LOWER WALLS-----------------------------*/
  465.  
  466. /*----------- ABOVE DOOR SECTION OF WALL -----------------------------*/
  467. #declare brick_wall = object {
  468.    Cube
  469.    scale <30, 6, 3>
  470.  
  471.    texture {
  472.       marble1
  473.       finish {
  474.          ambient 0.2
  475.          diffuse 0.9
  476.       }
  477.       scale <20, 30, 4>
  478.    }
  479.    texture {
  480.       marble2
  481.       scale <20, 9, 5>
  482.       finish { diffuse 1.0 }
  483.       rotate -30*z
  484.    }
  485.    texture {
  486.       marble4
  487.       finish {
  488.          phong 0.6
  489.          phong_size 25
  490.       }
  491.       scale <18, 18, 3>
  492.       rotate 50*z
  493.    }
  494. }
  495.  
  496. /*-------------- ARCH SECTION OF WALL --------------------------------*/
  497. #declare top_wall = object {
  498.    difference {
  499.       object { Cube scale <30, 10, 3> translate <0, 0, 0.01> }
  500.       object { Cylinder_Z scale <13, 13, 1> translate <0, -10, 0> }
  501.    }
  502.  
  503.    texture {
  504.       marble1
  505.       finish {
  506.          ambient 0.2
  507.          diffuse 0.9
  508.       }
  509.       scale <30, 20, 4>
  510.    }
  511.    texture {
  512.       marble2
  513.       scale <26, 16, 5>
  514.       finish { diffuse 1.0 }
  515.       rotate -30*z
  516.    }
  517.    texture {
  518.       marble4
  519.       finish {
  520.          phong 0.6
  521.          phong_size 25
  522.       }
  523.       scale <15, 27, 2>
  524.       rotate 50*z
  525.    }
  526. }
  527.  
  528.  
  529. /*------------------ TRIM ---------------------------------------------*/
  530. #declare molding_2 = union {
  531.    difference {
  532.       cylinder { <0,0,0>, z, 1 scale <16, 16, 12> translate <0, 0, -6>  }
  533.       object { Cylinder_Z scale <13, 13, 1> }
  534.    }
  535.    object { Cube scale <10, 2, 6> translate <-21, -2, 0>  }
  536.    object { Cube scale <10, 2, 6> translate <21, -2, 0>  }
  537.    object { Cube scale <31, 1, 6> translate <0, 17, 0>  }
  538.  
  539.    texture {
  540.       marble1
  541.       finish {
  542.          ambient 0.5
  543.          diffuse 1.0
  544.       }
  545.       scale <15, 3, 4>
  546.    }
  547.    texture {
  548.       marble4
  549.       finish {
  550.          phong 0.8
  551.          phong_size 15
  552.          ambient 0.6
  553.       }
  554.       scale <15, 7, 6>
  555.       rotate 50*z
  556.    }
  557. }
  558.  
  559. #declare motif3 = object {
  560.    Cube
  561.    scale <9.5, 5, 3.1>
  562.  
  563.    texture {
  564.       pigment {
  565.          image_map { gif "congo4.gif"  }
  566.          scale <19, 10, 1>
  567.          translate <-9.5, -5, -1>
  568.       }
  569.       finish {
  570.          ambient 0.3
  571.          diffuse 0.9
  572.          phong 1.0
  573.       }
  574.    }
  575. }
  576.  
  577. /*----------WALLS FLANKING DOOR WAY -----------------------------------*/
  578. #declare low_wall = object {
  579.    Cube
  580.    scale <9, 22, 3>
  581.  
  582.    texture {
  583.       marble1
  584.       finish {
  585.          ambient 0.3
  586.          diffuse 0.9
  587.       }
  588.       scale <15, 20, 7>
  589.    }
  590.    texture {
  591.       marble2
  592.       scale <10, 25, 3>
  593.       finish { diffuse 1.0 }
  594.       rotate <0, 0, -30>
  595.    }
  596.    texture {
  597.       marble4
  598.       finish {
  599.          phong 0.8
  600.          phong_size 25
  601.          ambient 0.5
  602.       }
  603.       scale <8, 16, 3>
  604.       rotate 50*z
  605.    }
  606. }
  607.  
  608. /*----------COMPOSITE THE WALL------------------------------*/
  609.  
  610. #declare wall = union {
  611.    object { low_wall translate <-21, 22, 0>  }
  612.    object { low_wall translate <21, 22, 0>  }
  613.    object { motif3 translate <-21, 42, 0>  }
  614.    object { motif3 translate <21, 42, 0>  }
  615.    object { molding_2 translate <0, 50, 0>  }
  616.    object { top_wall translate <0, 60, 0>  }
  617.    object { brick_wall translate <0, 74, 0>  }
  618. }
  619.  
  620.  
  621. /*--------CREATE INSIDE BACK WALL-----------------------*/
  622. object {
  623.    Cube
  624.    scale <95, 55, 1>
  625.  
  626.    texture {
  627.       marble1
  628.       finish {
  629.          ambient 0.2
  630.          diffuse 0.9
  631.       }
  632.       scale <40, 30, 5>
  633.    }
  634.    texture {
  635.       marble2
  636.       scale <30, 60, 3>
  637.       rotate -30*z
  638.    }
  639.    texture {
  640.       marble4
  641.       finish {
  642.          phong 0.8
  643.          phong_size 25
  644.       }
  645.       scale <30, 20, 3>
  646.       rotate 50*z
  647.    }
  648.    translate <0, 15, 10>
  649. }
  650.  
  651.  
  652. /*----------*** PUT UP THE WALLS ****--------------------*/
  653.  
  654. object { top_column rotate 10*y  scale 1.9 translate <-30, 94, -25> }
  655. object { top_floor  translate <-10, 80, 0> }
  656. object { bottom_column scale <1.3, 1, 1.3> translate <-100, 0, -40>  }
  657. object { bottom_column scale <1.3, 1, 1.3> translate <-30, 0, -40>  }
  658. object { bottom_column scale <1.3, 1, 1.3> translate <40, 0, -40>  }
  659. object { wall translate <5, 0, -32>    }
  660. object { wall translate <-65, 0, -32>  }
  661.  
  662.  
  663.    /*---------------------BACKDROP---------------------------------*/
  664. object {
  665.    Cube
  666.    scale <2000, 1500, 1>
  667.  
  668.    texture {
  669.       pigment { Maroon }
  670.       // image_map {  <1.0 -1.0 0> gif "sky1.gif"  }    // Optional sky map
  671.       // scale <4000 3000 2> translate <-2000 -1500 -2>
  672.       finish {
  673.          ambient 0.2
  674.          diffuse 0.6
  675.       }
  676.    }
  677.  
  678.    texture {
  679.       pigment {
  680.          gradient y
  681.          color_map {
  682.             [0.0 0.3 color Salmon color BlueViolet filter 0.3]
  683.             [0.3 1.0 color BlueViolet filter 0.3 color Black filter 0.2]
  684.          }
  685.          scale <4000, 3000, 1>
  686.          translate <0, -1500, 0>
  687.       }
  688.       finish {
  689.          ambient 1.0
  690.          diffuse 0.0
  691.       }
  692.    }
  693.    scale <1, 1, 1>
  694.    translate <0, 0, 2000>
  695. }
  696.  
  697.  
  698. /*------------------- CREATURE & MOTHER-IN-LAW -------------------------*/
  699.  
  700. object {
  701.    panther
  702.    rotate -20*y
  703.    scale 1.2
  704.    translate <-70, 89.5, -10>
  705. }
  706.  
  707. object {
  708.    lizard
  709.    scale <1, 0.9, 1>
  710.    rotate -10*z
  711.    translate <-33, 16, -20>
  712. }
  713.  
  714. #declare snake = union {
  715.     object { top }
  716.     object {
  717.        head
  718.        scale <1.9, 1.6, 1.6>
  719.        rotate <0, -90, -90>
  720.        translate <23, 0, -13>
  721.     }
  722.     rotate <-90, -180, -90>
  723. }
  724.  
  725. object { snake  translate <-4, 87, -68> }
  726.  
  727. // end-of-file
  728.